<?php
class Generales_Model_Documentos extends Model_Cna {
    private $documentosTable;

    public function __construct() {
        parent::__construct();
        $this->documentosTable = new Generales_Model_DbTable_Documentos();
    }

    /**
     * Guardar documentos
     * @datos Array datos del registro
     * @return Integer código del registro insertado
     */
    public function guardarDocumento($datos) {
        return $this->documentosTable->createRow($datos)->save();
    }

    /**
     * Carga los datos del documento
     * @param int $coddocumento Código del documento
     * @return Array con los datos del documento
     */
    public function cargarDatos($coddocumento) {
        return $this->documentosTable->find($coddocumento)->current()->toArray();
    }

    /**
     * Busca y carga los datos del documento
     * @param varchar $nombrecodificado Nombre codificado del documento
     * @return Array con los datos del documento
     */
    public function getDocumentoByNombre($nombrecodificado) {
        return $this->documentosTable->getDocumentoByNombre($nombrecodificado);
    }

    /**
     * Eliminar documento
     * @param Integer código del documento
     * @return boolean
     */
    public function eliminarDocumento($coddocumento) {
        $this->documentosTable->getAdapter()->beginTransaction();
        try {
            $datos_adjunto = $this->cargarDatos($coddocumento);
            $this->documentosTable->delete("coddocumento={$coddocumento}");
            
            $appConfig = Zend_Registry::get('appConfig');
            $nombre_archivo = $appConfig->get("ruta_archivos")."/".$datos_adjunto["nombrecodificado"];
            echo $nombre_archivo = str_replace('/', '\\', $nombre_archivo);
            unlink($nombre_archivo);
            $this->documentosTable->getAdapter()->commit();
        } catch(Exception $e) {
			$this->documentosTable->getAdapter()->rollBack();
			throw $e;
		}
    }
}
